package com.indexingsystem.boss.admin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.indexingsystem.boss.Vo.MagazinesQueryVo;
import com.indexingsystem.boss.Vo.MagazinesTableVo;
import com.indexingsystem.boss.Vo.OrderExportMagazinesQueryVo;
import com.indexingsystem.boss.Vo.OrderMagazinesVo;
import com.indexingsystem.boss.entity.Magazines;

public interface MagazinesMapper {
	/**
	 * 通过报刊id删除报刊信息.
	 * 
	 * @param resId
	 * @return
	 */
	int deleteByPrimaryKey(String resId);

	/**
	 * 批量删除期刊信息.
	 * @param resIdList
	 * @return
	 */
	int deleteMagazinesByIdBatch(@Param("list") List<String> list);

	/**
	 * 新增报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int insert(Magazines record);

	/**
	 * 带条件新增报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(Magazines record);

	/**
	 * 获取期刊总数量.
	 * 
	 * @param magazinesQueryVo
	 * @return
	 */
	Integer getMagazinesListCount(MagazinesQueryVo magazinesQueryVo);

	/**
	 * 获取报刊列表.
	 * 
	 * @return
	 */
	List<MagazinesTableVo> selectMagazinesList(MagazinesQueryVo magazinesQueryVo);
	List<MagazinesTableVo> selectMagazinesAllList();
	/**
	 * 通过报刊id查询报刊信息.
	 * 
	 * @param resId
	 * @return
	 */
	Magazines selectByPrimaryKey(String resId);

	/**
	 * 修改报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Magazines record);

	/**
	 * 全量修改报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(Magazines record);
	
	/**
	 * 检索报刊
	 * 
	 * @param magazinesQueryVo
	 * @return
	 */
	List<MagazinesTableVo> searchMagazinesList(MagazinesQueryVo magazinesQueryVo);
	
	/**
	 * 通过资源分类id和订购的开始年份及结束年份
	 * @param magazinesYearListReqVo
	 * @return
	 */
	List<Magazines> getMagazinesListByResCategoryIdOrYear(OrderMagazinesVo orderMagazinesVo);
	
	/**
	 * 根据订单资源分类列表、开始年份、结束年份查询订单所有资源的期刊资源列表.
	 * @param orderExportMagazinesQueryVo
	 * @return
	 */
	List<Magazines> getOrderMagazinesResListByResCategoryId(OrderExportMagazinesQueryVo orderExportMagazinesQueryVo);

	MagazinesTableVo selectMagazinesById(String resId);
	
}